//
// Created by win10 on 2024/12/30.
//
#include <stdio.h>
#include <stdlib.h>

#define MAXSIZE 50     // MAXSIZE为最大数据元素数目
typedef int ElemType;
typedef struct
{
    ElemType  r[MAXSIZE + 1];    // r[0]闲置或另作它用
    int  length;
} SqList;

// 初始化顺序表
void InitList(SqList *L) {
    L->length = 0;
}

// 创建顺序表，输入元素
void CreateList(SqList *L, int n) {
    L->length = n;
    for (int i = 0; i < n; i++) {
        scanf("%d", &L->r[i + 1]);
    }
}

// 直接插入排序函数
void InsertionSort(SqList *L) {
    for (int i = 2; i <= L->length; i++) {  // 从第二个元素开始，依次将元素插入已排序区间
        ElemType key = L->r[i];  // 待插入元素
        int j = i - 1;
        while (j > 0 && L->r[j] > key) {  // 在已排序区间中找到合适位置插入
            L->r[j + 1] = L->r[j];
            j--;
        }
        L->r[j + 1] = key;  // 将元素插入合适位置
    }
}

// 输出顺序表中的元素
void PrintList(SqList *L) {
    for (int i = 1; i <= L->length; i++) {
        printf("%d", L->r[i]);
        if (i < L->length) {
            printf(" ");
        }
    }
    printf("\n");
}

int main() {
    SqList L;
    InitList(&L);

    int n;
    scanf("%d", &n);
    CreateList(&L, n);

    InsertionSort(&L);
    PrintList(&L);

    return 0;
}